データにNullが多かったらフィールドごと除外したい。そんな時は動的セレクトツールが使えます。
こんにちは、データインテグレーション事業本部プロダクト営業部プリセールススペシャリストの兼本です。
データ分析をする際、読み込んでみたらNull値ばかりで使えないデータを除外したいときありませんか? そんなときは動的セレクトツールが使えるかもしれませんよ。
Null値を含むレコードを除外する
まずは基本編です。単にNull値を含むレコードを除外したいときはフィルタツールを使用して、以下のような条件を設定することでNull値をもつレコードをフィルタすることができます。
簡単なワークフローの例:
読み込んだデータのageフィールドのデータは、全体の88.74%がNull値です。
フィルタツールでNull値を除外します。
これで、Null値を含むレコードを除外することができました。
Null値を含むフィールドを除外する
Null値を含むフィールドをすべて除外するときはセレクトツールを使います。例えば以下のワークフローで読み込んだデータにはField34~Field45という名称のNull値しか持たないフィールドが含まれています。
読み込んだデータ:
明らかに不要なフィールドであるとわかる場合は、セレクトツールを使用して、対象のフィールドを除外することができます。 この場合は、プロパティペインでフィールドField34~Field45の先頭にあるチェックを外します。
これで不要なフィールドを除外することができました。
Null値を含むフィールドを動的に除外する
先の方法は、明らかに除外できるフィールドが確定している場合は有効ですが、Null値の割合が多いかどうかが、データを見るまで分からない場合があります。
例えば、不特定多数の予測パラメータとして使いたいフィールドがあり、Null値を多く含む場合は事前に不要なフィールドを除外したい場合です。
このような場合、動的セレクトツールを使用することで、動的に使用するフィールドを決めることができます。
サンプルとして作成したワークフローは以下の通り。動的ワークフローは特定の条件に基づいてフィールドを選択することができるため、前処理で条件式で使用するデータを作成しています。
今回のサンプルでは、各フィールドのデータにNull値が含まれている割合を調べ、Null値が 80%よりも多い場合は、そのフィールドを除外します。
データがNull値かそれ以外かを知る簡単な方法として、基本データプロファイルツールが使えます。
基本データプロファイルツールを使用すると、各フィールドに関する様々な情報を確認することができます。 例えば、ageフィールドのNullsには、そのフィールドに含まれているNull値の数が、NonNullsにはNull値以外の数が出力されています。
このデータをクロスタブツールでピボットします。グループキーとしてFieldNameを指定します。
次にセレクトツールで不要なフィールドを削除します。
フォーミュラツールを使用して、以下の計算式を実行することでフィールドごとのNull値の割合を計算することができます。
もうひとつフォーミュラツールを配置して、Null値の割合が80%よりも多い場合はフィールド名に「_removeme」という値を付与し、その結果を「NewFileldName」フィールドに格納しておきます。
動的リネームツールを使用して、削除したい(=Null値を多く含む)フィールドの名称を変更します。(実際にはすべてのフィールド名を置き換えています)
最後に動的セレクトツールを配置し、モードとして「式を使用して選択」を指定し、フィールド名に「_removeme」という文字列が含まれている場合はフィールドを除外する式を作成します。
これで、Null値が80%よりも多く含むフィールドを除外することができました。
おわりに
いかがでしたか。今回は動的セレクトツールを使用して不要なフィールドを動的に除外する処理をご紹介しました。
動的入力ツールや動的リネームツールをうまく利用すると、さまざまな処理を作成することができますので、ぜひ皆さんもこれらのツールを活用してみてください。
以上、最後まで読んでいただきありがとうございました。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。